#1，导入驱动库
from pymongo import MongoClient
#2，建立连接，注意IP和端口，字符串中不要有多余的空格
#旧版本
#client=MongoClient("mongod://127.0.0.1:27017")
#较新版本
#client=MongoClient("mongodb://127.0.0.1:27017")
#比较通用的方式
client=MongoClient("127.0.0.1:27017")
'''访问集群示例
client=MongoClient("192.168.209.180: 27017, 192.168.209.180: 27018")
client=MongoClient(host=["192.168.209.180:27020"], replicaset="test_replica_set")
'''
#3,获得并展示数据库列表，返回值可以看作链表结构
result = client.list_databases()
for i in result:
    print("list_databases:",i)
#4.删掉一个数据库（数据库不存在也不会报错）
client.drop_database("testdb")
#5.切换到指定数据库（testdb），如果不存在则新建：
db = client.get_database("testdb")
#6,删掉一个集合（集合不存在也不会报错）,显示删除结果，并重新创建
result = db.drop_collection("fruitshop")
print('drop_collection:',result)
db.create_collection("fruitshop")
#7，切换到集合（testcollection），如果不存在则新建：
col = db.get_collection("fruitshop")
#8，定义一个JSON文档，可以先在任意客户端中对文档格式进行验证
doc={"name":"apple","tags":"red","qty":10,"place":{"province":"shangdong","city":"qingdao"},"pricelist":[1.5,1.8,1.7],"records":[{"date":"2022-03-01","num":10,"price":1.5},{"date":"2022-03-02","num":12,"price":1.8},{"date":"2022-03-03","num":11,"price":1.7}]}
#9，插入一条记录（insert_one），并打印反馈结果(注意返回值的结构)
result = col.insert_one(doc)
print('insert_one:',result.acknowledged)
#10，查询并返回一条记录，并进行打印
result_item = col.find_one()
print(result_item)
#11，对当前数据库中的集合进行列表展示
result = db.list_collection_names()
for i in result:
    print("list_collections:",i)
#12，关闭连接
db.client.close()